package com.zhida.common.utils;

import com.zhida.common.entity.FileObject;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;

public class FileRunnable implements Runnable{
    private final MultipartFile file;
    private final String filePath;
    private final List<FileObject> objectList; // 假设这个列表是线程安全的，或者每个任务都有自己的列表

    public FileRunnable(MultipartFile file, String filePath, List<FileObject> objectList) {
        this.file = file;
        this.filePath = filePath;
        this.objectList = objectList;
    }

    @Override
    public void run() {
        try {
            String fileName = file.getOriginalFilename();
            String suf = fileName.substring(fileName.lastIndexOf(".") + 1);
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            fileName = uuid + "." + suf;

            File file1 = new File(filePath, fileName);
            file.transferTo(file1);

            // 假设objectList是线程安全的，或者每个任务都有自己的列表
            objectList.add(new FileObject(uuid, suf));
        } catch (IOException e) {
            e.printStackTrace();
            // 你可以考虑使用其他方式处理异常，比如记录日志或发送通知
        }
    }
}
